package com.ruoyi.staff.domain;/**
 * @Title:staff
 * @ClassName: ruoyi
 * @Description: TODO
 * @author: java
 * @time: 2024/3/1 9:15
 */

import com.ruoyi.clerkBalanceRecord.domain.ClerkBalanceRecord;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.entity.StoreUser;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;

/**
 * @ClassName: staff
 * @Description: TODO
 * @author: java
 * @time: 2024/3/1 9:15
 */
public class Staff extends BaseEntity  {
    /** 主键 */
    @ApiModelProperty(value = "${comment}")
    private Long id;

    /** openId */
    @ApiModelProperty(value = "openId")
    private String openId;

    /** unionId*/
    @ApiModelProperty(value = "unionId")
    private String unionId;

    /** 门店id*/
    @ApiModelProperty(value = "门店id")
    private Long storeId;

    /**userType */
    @ApiModelProperty(value = "员工类型")
    private String userType;

    /** 员工昵称 */
    @Excel(name = "员工昵称")
    @ApiModelProperty(value = "员工昵称")
    private String nickName;

    /** 员工名称 */
    @Excel(name = "员工名称")
    @ApiModelProperty(value = "员工名称")
    private String userName;

    /** 员工电话 */
    @Excel(name = "员工电话")
    @ApiModelProperty(value = "员工电话")
    private String phone;

    /** 员工密码 */
    @Excel(name = "员工密码")
    @ApiModelProperty(value = "员工密码")
    private String password;

    /** 员工头像 */
    @Excel(name = "员工头像")
    @ApiModelProperty(value = "员工头像")
    private String headImg;

    /** 员工性别 */
    @Excel(name = "员工性别")
    @ApiModelProperty(value = "员工性别")
    private Integer gender;

    /** 师傅ID */
    @Excel(name = "师傅ID")
    @ApiModelProperty(value = "师傅ID")
    private Long staffMasterId;


    /** 师傅分佣比 */
    @Excel(name = "师傅分佣比")
    @ApiModelProperty(value = "师傅分佣比")
    private Float commissionRate;
    /** 账户状态 */
    @Excel(name = "账户状态")
    @ApiModelProperty(value = "账户状态")
    private String state;


    /**
     * 绑定为下级本地路径
     */
    private String belowImageLocal;
    /**
     * 绑定为下级二维码url
     */
    private String belowImageUrl;
    /**
     * 绑定为下级二维码路径
     */
    private String belowPage;

    /** 师傅名称列表*/
    @Excel(name = "师傅名称列表")
    @ApiModelProperty(value = "师傅名称列表")
    private List<String> masterList;

    /** 徒弟名称列表*/
    @Excel(name = "徒弟名称列表")
    @ApiModelProperty(value = "徒弟名称列表")
    private List<String> discipleList;

    /** 所有下级列表*/
    @Excel(name = "所有下级列表")
    @ApiModelProperty(value = "所有下级列表")
    private List<String> subordinateList;

//    /** 分销明细*/
//    @Excel(name = "分销明细")
//    @ApiModelProperty(value = "分销明细")
//    private List<ClerkBalanceRecord> clerkBalanceRecordList;

    /** 订单数*/
    @Excel(name = "订单数")
    @ApiModelProperty(value = "订单数")
    private Integer orderCount;

    /** 总金额*/
    @Excel(name = "总金额")
    @ApiModelProperty(value = "总金额")
    private BigDecimal totalAmount;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }


    public String getUnionId() {
        return unionId;
    }

    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }

    public Long getStoreId() {
        return storeId;
    }

    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    public String getUserType() {
        return userType;
    }

    public void setUserType(String userType) {
        this.userType = userType;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }


    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getHeadImg() {
        return headImg;
    }

    public void setHeadImg(String headImg) {
        this.headImg = headImg;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Long getStaffMasterId() {
        return staffMasterId;
    }

    public void setStaffMasterId(Long staffMasterId) {
        this.staffMasterId = staffMasterId;
    }

    public Float getCommissionRate() {
        return commissionRate;
    }

    public void setCommissionRate(Float commissionRate) {
        this.commissionRate = commissionRate;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }


    public String getBelowImageLocal() {
        return belowImageLocal;
    }
    public void setBelowImageLocal(String belowImageLocal) { this.belowImageLocal = belowImageLocal; }

    public String getBelowImageUrl() {
        return belowImageUrl;
    }
    public void setBelowImageUrl(String belowImageUrl) {
        this.belowImageUrl = belowImageUrl;
    }

    public String getBelowPage() {
        return belowPage;
    }
    public void setBelowPage(String belowPage) {
        this.belowPage = belowPage;}

    public List<String> getMasterList() {
        return masterList;
    }

    public void setMasterList(List<String> masterList) {
        this.masterList = masterList;
    }

    public List<String> getDiscipleList() {
        return discipleList;
    }

    public void setDiscipleList(List<String> discipleList) {
        this.discipleList = discipleList;
    }

    public List<String> getSubordinateList() {
        return subordinateList;
    }

    public void setSubordinateList(List<String> subordinateList) {
        this.subordinateList = subordinateList;
    }

    public Integer getOrderCount() {
        return orderCount;
    }

    public void setOrderCount(Integer orderCount) {
        this.orderCount = orderCount;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

//    public List<ClerkBalanceRecord> getClerkBalanceRecordList() {
//        return clerkBalanceRecordList;
//    }
//
//    public void setClerkBalanceRecordList(List<ClerkBalanceRecord> clerkBalanceRecordList) {
//        this.clerkBalanceRecordList = clerkBalanceRecordList;
//    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("openId", getOpenId())
                .append("unionId", getUnionId())
                .append("storeId", getStoreId())
                .append("userType", getUserType())
                .append("nickName", getNickName())
                .append("userName", getUserName())
                .append("Phone", getPhone())
                .append("Password", getPassword())
                .append("headImg", getHeadImg())
                .append("gender", getGender())
                .append("staffMasterId", getStaffMasterId())
                .append("commissionRate", getCommissionRate())
                .append("state", getState())
                .append("delState", getDelState())
                .append("delUser", getDelUser())
                .append("delType", getDelType())
                .append("delTime", getDelTime())
                .append("createBy", getCreateBy())
                .append("createType", getCreateType())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateType", getUpdateType())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
